#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define n 8
struct Stores//定义商店 
{
	int number;
	char name[50];
	float price;
	float discount;
}store[20];
struct Cart//定义购物车 
{
	int number;
	char name[50];
	float price;
	float discount;
	int count;
	float after_count;
}cart[20];
int i,j,tem,count,m,function;
float money;
char temp[25];
int choose_function()
{
	int function;
	printf("\n");
	printf("请选择你要实现的功能：\n");
	printf("1.显示商店所有商品\n2.添加商品到购物车\n3.从购物车移除商品\n4.查看购物车\n5.结算并退出\n");
	scanf("%d",&function);
	printf("\n");
	return function;
}
void show()//显示商店所有商品
{
	printf("编号   商品名称              价格  折扣\n");
	for(i=0;i<n;i++)	
		printf("%d %-20s %6.2f %4.2f\n",store[i].number,store[i].name,store[i].price,store[i].discount);		
}
void add(void)//添加商品到购物车
{
	printf("请输入您要添加的商品编号与件数：\n");
	scanf("%d %d",&tem,&count);
	for(i=0;i<n;i++)
	{
		if(tem==store[i].number)
		{
			cart[j].number=store[i].number;
			strcpy(cart[j].name,store[i].name);
			cart[j].price=store[i].price;
			cart[j].discount=store[i].discount;
			cart[j].count=count;
			cart[j].after_count=cart[j].price*cart[j].discount*cart[j].count;
			j++;
			m++;
		}
	}
}	
void remove()//从购物车移除商品
{
	printf("请输入您要移除的商品编号：\n");
	scanf("%d",&tem);
	for(i=0;i<n;i++)
	{
		if(tem==cart[i].number)
		{
			for(i=i;i<m;i++)
			{
				cart[i].number=cart[i+1].number;
				strcpy(cart[i].name,cart[i+1].name);
				cart[i].price=cart[i+1].price;
				cart[i].discount=cart[i+1].discount;
				cart[i].count=cart[i+1].count;
				cart[i].after_count=cart[i+1].after_count;
			}
			m--;
		}
	}	
}
void check()//查看购物车
{
	printf("编号   商品名称              价格  折扣 数量 折后总价\n");
	for(i=0;i<m;i++)	
		{
			printf("%d %-20s %6.2f %4.2f %4d %.2f\n",cart[i].number,cart[i].name,cart[i].price,cart[i].discount,cart[i].count,cart[i].after_count);
			money+=cart[i].price*cart[i].discount*cart[i].count;
		}	
	printf("所有物品折后总价是%.2f",money);
} 
void settle_and_exit()//结算并退出
{
	for(i=0;i<m;i++)
	{
		money+=cart[i].price*cart[i].discount*cart[i].count;
	}
	printf("所有物品折后总价是%.2f",money);
	function=6;
}
int main()
{
	int function;
	FILE *fp;//打开文件
	if((fp=fopen("C:\\final\\goods.txt","r"))==NULL) //运用时注意更改路径
	{
		printf("can not open it\n");
		exit(0);
	}
	else printf("开始\n");
	for(i=0;i<n;i++)
		fscanf(fp,"%d,%[^,],%f,%f",&store[i].number,&store[i].name,&store[i].price,&store[i].discount);
	fclose(fp);
	while(function!=5)
	{
		function=choose_function();
		{
			switch(function)
			{
				case 1:show();break;//显示商店所有商品
				case 2:add();break;//添加商品到购物车
				case 3:remove();break;//从购物车移除商品
				case 4:check();break;//查看购物车
				case 5:settle_and_exit();break;//结算并退出
			}
		}	
	}
	return 0;
}